package com.violet.domain.po;

import com.baomidou.mybatisplus.annotation.TableName;
import com.violet.annotation.transition.TDefaultValue;
import com.violet.annotation.transition.TFormPrice;
import com.violet.annotation.transition.TNoTransition;
import com.violet.annotation.transition.TNoTransitionWithDefaultId;
import com.violet.domain.emuns.OrderStatus;
import lombok.Data;
import lombok.experimental.Accessors;

import java.time.LocalDateTime;

@Data
@Accessors(chain = true)
@TableName("buy_order")
public class BuyOrder implements PO {
    @TNoTransitionWithDefaultId(prefix = "BO")
    private String id;

    @TNoTransition
    private String userId;

    @TFormPrice
    private Double totalPrice;                  // 总价格
    @TFormPrice
    private Double totalDiscountAmount;         // 优惠金额
    @TFormPrice
    private Double finalPrice;                  // 实付金额

    @TDefaultValue
    private LocalDateTime createTime;           // 创建时间（提交订单时确定）
    private LocalDateTime orderTime;            // 下单时间（用户付款后确定）
    private LocalDateTime deliveryTime;         // 送达时间（送到后由用户手动确定 | 后台手动确定 | 每天十一点自动确定）

    private String rideId;
    private OrderStatus status;                 // 状态（待支付 0、待发货 1、配送中 2、已完成 3）
}
